วิธีเพิ่ม Timezone ใน Elastic Beanstalk
ครั้งนี้ผมจะมาอธิบายเกี่ยวกับ วิธีเพิ่ม Timezone ใน Elastic Beanstalk ครับ
สิ่งที่ต้องมี
ในบทความนี้ผมจะละเว้นการอธิบายในส่วนของ Elastic Beanstalk หากผู้อ่านต้องการเรียนรู้วิธีการเริ่มต้นใช้งาน Elastic Beanstalk ผมขอแนะนำให้อ่านบทความด้านล่างนี้ครับ
เตรียมไฟล์สำหรับ Deploy เพื่อใช้ตั้งค่าใน Elastic Beanstalk
ขั้นตอนนี้ผมจะสร้าง [โฟลเดอร์ .ebextensions] และ [ไฟล์ 02_timezone.config] เพื่อเตรียมไว้ใช้อัปโหลดใน Elastic Beanstalk เพื่อให้สามารถเปลี่ยนแปลง Timezone ของ EC2 Instance ที่สร้างจาก Environment ได้ครับ
ถ้ามีไฟล์ที่มีเนื้อหาการตั้งค่าในโฟลเดอร์ .ebextensions ของโปรเจกต์ที่จะ Deploy แล้ว เนื้อหาการตั้งค่าจะถูกดำเนินการในระหว่างการ Deploy ซึ่งเราสามารถใช้ไฟล์นี้ในการตั้งค่า Timezone ได้ครับ
ทำการเตรียมไฟล์ที่จะใช้ Deploy และเพิ่มการตั้งค่าต่อไปนี้ให้กับไฟล์ครับ
สร้างโฟลเดอร์ .ebextensions และไฟล์ 02_timezone.config
สร้างโฟลเดอร์.ebextensions
จากนั้นคลิกเข้าไปยังโฟลเดอร์และสร้างไฟล์02_timezone.config
ซึ่งขั้นตอนนี้คือการสร้างไฟล์ที่จะใช้ในการตั้งค่า Timezone ให้กับ EC2 Instance ที่สร้างขึ้นจาก Environment
ทำการตั้งค่า Timezone ด้วยคำสั่งนี้ โดย Copy Code ด้านล่างนี้วางลงในไฟล์ และ Save ลงในโฟลเดอร์ .ebextensions โดยใช้ชื่อไฟล์02_timezone.config
ครับ
commands: 01_timezone: command: | timedatectl set-timezone Asia/Bangkok
เมื่อสามารถรวม ".ebextensions/02_timezone.config" ไว้ในกลุ่มไฟล์ที่ใช้ Deploy แล้ว ให้ทำการบีบอัดไฟล์
หน้าจอด้านล่างนี้คือตัวอย่าง ซึ่งตัวอย่างนี้คือกรณีของโปรเจกต์ที่มีแค่ไฟล์ที่ชื่อว่า info.php ครับ
ดูตัวอย่างที่นี่เฉพาะเนื้อหาการบีบอัดไฟล์นี้ครับ: Compress to ZIP file (2 ไฟล์)
เมื่อเตรียมไฟล์เสร็จแล้ว Deploy ได้เลยครับ
การเชื่อมต่อกับ EC2 ที่สร้างจาก Elastic Beanstalk ด้วย PuTTY
ขั้นตอนต่อไปนี้คือการแสดงผลลัพธ์ใน Terminal ที่ได้จากการตั้งค่าทั้งหมดตามตัวอย่างข้างต้น โดยให้เริ่มทำการตรวจสอบตามนี้ครับ
ดูตัวอย่างที่นี่เฉพาะหัวข้อย่อยนี้: ทำการเชื่อมต่อกับ EC2 ที่สร้างใน Elastic Beanstalk ด้วย PuTTY
รันคำสั่งนี้เพื่อตรวจสอบ Timezone
date
Output (example)
จะเห็นว่า Timezone ปัจจุบันนี้คือ +07 หรือเขตเวลา Asia/Bangkok นั่นเองครับ
root@ip-172-31-30-120:~
Using username "ec2-user".
Authenticating with public key "tinnakorn-test"
Last login: Mon Jul 18 12:20:53 2022 from node-bjt.pool-180-180.dynamic.totinternet.net
_____ _ _ _ ____ _ _ _
| ____| | __ ___| |_(_) ___| __ ) ___ __ _ _ __ ___| |_ __ _| | | __
| _| | |/ _ \/ __| __| |/ __| _ \ / _ \/ _\ | '_ \/ __| __/ _\ | | |/ /
| |___| | (_| \__ \ |_| | (__| |_) | __/ (_| | | | \__ \ || (_| | | <
|_____|_|\__,_|___/\__|_|\___|____/ \___|\__,_|_| |_|___/\__\__,_|_|_|\_\
Amazon Linux 2 AMI
This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via SSH
WILL BE LOST if the instance is replaced by auto-scaling. For more information
on customizing your Elastic Beanstalk environment, see our documentation here:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
[ec2-user@ip-172-31-30-120 ~]$ date
Mon Jul 18 16:47:43 +07 2022
[ec2-user@ip-172-31-30-120 ~]$
เราสามารถตั้งค่า Timezone โดยการตั้งค่านี้ด้วยภาษาโปรแกรมนอกจาก PHP (สภาพแวดล้อม Elastic Beanstalk ที่ใช้ Amazon Linux 2 จะสามารถใช้งานได้ทั้งหมด)
สรุป
การสาธิตนี้ก็ได้เสร็จสิ้นแล้ว ซึ่งเราสามารถเปลี่ยน Timezone ได้ตามที่เราต้องการ เพียงแค่เขียน Code ลงในไฟล์โดยระบุ Timezone ของประเทศที่ต้องการ แล้วบีบอัดไฟล์รวมกันให้เป็น .zip จากนั้น Deploy ไปยัง Elastic Beanstalk และไปตรวจสอบใน Server EC2 ก็จะทำให้เรารู้ว่าปัจจุบันนี้เราใช้ Timezone ของประเทศอะไรอยู่นั่นเองครับ